package com.example.baiduai.hander.impl;


import com.example.baiduai.dto.AiDto;
import com.example.baiduai.hander.PayMannerHander;
import com.example.baiduai.interfaces.Constat;
import com.example.baiduai.pojo.AbnormalPojo;
import com.example.baiduai.utils.GooGleCacheUtils;
import com.example.baiduai.utils.HttpUtils;
import com.example.baiduai.utils.ObjectUtils;
import com.example.baiduai.utils.TimeUtils;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;

/**
 * 收银机开 3
 */
@Component
public class CashRegistersOpenImpl extends PayMannerHander implements InitializingBean {
    @Override
    public String payMannerStatus(AiDto dto) {

        String msg ="";

        if(dto.getLabelNames().contains("收银机开")){

            // 判断有没有 支付现金
            Boolean b = GooGleCacheUtils.isCashPayCache(Constat.prefix.CASH_PAY_PREFIX + dto.getDevice_id());

            //收银机开了  没有现金支付
            if(ObjectUtils.isEmpty(b)){  // 异常支付  (打开钱箱未付钱  异常)
                msg="打开钱箱未付钱  异常";
//                AbnormalPojo abnormalPojo = new AbnormalPojo(dto.getDevice_id(), TimeUtils.getCurrentTime_ymd_hms(), 2, 3);
//                HttpUtils.doPostJson(Constat.IP+Constat.URL,abnormalPojo);

            }else if (b){// 收银机开 第一次进来  是一次正常的现金支付
                msg="是一次正常的现金支付";
                // 加入缓存 设置成false  为了判断收银机开是不是 多次进来
                GooGleCacheUtils.cashPayCachePut(Constat.prefix.CASH_PAY_PREFIX + dto.getDevice_id(),false);
                // 收银箱加入缓存
                GooGleCacheUtils.cashierBboxCachePut(Constat.prefix.CASH_BBOX_PREFIX + dto.getDevice_id());
            } else if(!b){  //收银机开多次进来  先不管它
                msg="收银机开多次进来";
                GooGleCacheUtils.cashierBboxCachePut(Constat.prefix.CASH_BBOX_PREFIX + dto.getDevice_id(),false);

            }





            return msg;
        }else return "没有相应的标签";
    }

    @Override
    public void afterPropertiesSet() throws Exception {
//        this.setPayHander(cashRegistersOpenImpl);
    }
}
